package com.ershui.blog.system.domain;

import jdk.nashorn.internal.ir.ObjectNode;

import java.util.HashMap;

/**
 * Ajax请求返回体
 * @author  jinbin
 */
public class AjaxResult extends HashMap<String,Object> {
    /**状态码***/
    public static final String CODE="code";
    /** 返回信息 **/
    public static final String MSG="msg";
    /** 数据对象 **/
    public static final String DATA="data";

    /**
     * 状态类型
     */
    public enum Type{
        SUCCESS(0),

        ERROR(500);

        private final  int value;

        Type(int value){this.value=value;}

        public int value(){return this.value;}
    }

    /**
     *构建一个AjaxResult对象，表示空消息
     */
    public  AjaxResult(){
    }

    /**
     *构建一个AjaxResult对象
     * @param code  状态码
     * @param msg 返回内容
     */
    public AjaxResult(Type code,String  msg){
        super.put(CODE,code.value);
        super.put(MSG,msg);
    }

    /**
     * 构建一个AjaxResult对象
     * @param code 状态码
     * @param msg 返回内容
     * @param object 数据对象
     */
    public AjaxResult(Type code, String msg, Object object){
        super.put(CODE,code.value);
        super.put(MSG,msg);
        super.put(DATA,object);
    }

    /**
     * 返回成功消息
     * @return
     */
    public static AjaxResult sucess(){
        return new AjaxResult(Type.SUCCESS,"操作成功");
    }

    /**
     * 返回成功消息
     * @param msg 消息内容
     * @return
     */
    public static AjaxResult sucess(String msg){
        return new AjaxResult(Type.SUCCESS,msg);
    }

    /**
     * 返回成功消息
     * @param msg 消息内容
     * @param data 对象数据
     * @return
     */
    public static AjaxResult sucess(String msg,Object data){
        return new AjaxResult(Type.SUCCESS,msg,data);
    }

    /**
     * 返回失败消息
     * @return
     */
    public static AjaxResult error(){
        return new AjaxResult(Type.ERROR,"操作失败");
    }

    /**
     * 返回失败消息
     * @param msg
     * @return
     */
    public static AjaxResult error(String msg){
        return new AjaxResult(Type.ERROR,msg);
    }
}
